Создайте любой проект Win32 Console, например с именем step14. Не забудьте установить поддержку MFC, как в "Шаг 1 - Минимальный проект".
#include "stdafx.h"
#include "iostream.h"
#include "afxwin.h" // библиотека MFC
#include "conio.h"
void main()
{
cout << "This not debug" << endl;
#ifdef _DEBUG
cout << "debug code" << endl;
#endif
getch(); // дождаться нажатия клавиши
}
Запускайте, выполняйте. На экране должна появиться надпись.
This not debug debug code
Это говорит о том, что у нас включена отладка в код. В нашем EXE есть имена переменных, классов, функций, и весь код. Плюс к тому в нем есть код включенный через детективы компилятора _DEBUG. В MFC такого отладочного кода девать некуда. Честное слово. Посмотрите исподники MFC в каталоге:
Версия 5.0 Program Files\DevStudio\Vc\mfc\src Версия 6.0 Program Files\Microsoft Visual Studio\VC98\MFC\SRC
А теперь посмотрим размер вашего файла. В каталоге проекта есть папка Debug, где лежит Ваш файл и его размер где-то около...
Версия 5.0 - 900 kb Версия 6.0 - 1.25 mb
Как мне сказал один хороший знакомый - валерианки не хватит. Для того, чтобы получить нормальную версию, необходимо переключиться на проект Release. Это делается в меню Build далее Set Active Configuration:

Дальше надо выбрать Release:

Запустите сборку Rebuild all и проект на выполнение. На экране появится.
This not debug
В папочке проекта у вас появится папочка Release. Посмотрите там размер EXE файла всего около 100 КБ. Как впечатляет ?

Ещё размер зависит от того, как вы используете MFC. Есть два варианта Static Library и Dinamic Library. Если вы используете первый вариант, то код MFC будет в проекте и размер вырастет. Во втором варианте программа будет пользоваться DLL и размер будет меньше.
Так вот второй вариант, это потенциальные проблемы, вам надо следить при установке, чтобы все DLL были в системе. Кто гарантирует, что их потом не заменят или не удалят? Я помню на заре развития программирования на VB появились утилиты, которые прикрепляют DLL к EXE, они появились после горького опыта многих людей.
У меня пользователи не могут даже заставку на экране поменять. При таком подходе можно применять динамическую компоновку. А если ваша программа будет работать в экстремальных ситуациях и на большом удалении от Вас, оставляйте статическую компоновку. Жесткие диски по 10 GB и больше уже норма. Ничего с ними не станет. Сотрут игры :) !!!
Завершая разработку программы, сделайте версию компоновки Release.